/*
 * @Description: 
 * @Author: changqing
 * @Date: 2021-08-30 19:33:09
 * @LastEditTime: 2021-08-30 19:38:16
 * @LastEditors: changqing
 * @Usage: 
 */


//当使用multicast时，新的Observable类型会是一个ConnectableObservable,和一般的Observable的差别就在于ConnectableObservable是多播的，且必须执行它的connect方法，才会开始进行多播的动作：
var { timer, interval,range,from,Subject } = require('rxjs'); 
var {take,map, multicast} = require('rxjs/operators');

const source = interval(1000).pipe(
  take(5),
  multicast(() => new Subject())
);
 source.subscribe((data) => {
 console.log(`multicast 第一次订阅: ${data}`);
 });

setTimeout(() => {
source.subscribe((data) => {
console.log(`multicast 第二次订阅 ${data}`);
});
}, 5000);
setTimeout(() => {
	source.connect();
}, 3000);
 // multicast 第一次订阅: 0
 // multicast 第一次订阅: 1
 // multicast 第二次订阅: 1
 // multicast 第一次订阅: 2
 // multicast 第二次订阅: 2
 // multicast 第一次订阅: 3
 // multicast 第二次订阅: 3
 // multicast 第一次订阅: 4
 // multicast 第二次订阅: 4